package com.yl.pattern.behavioralmodel.state.after;

/**
 * @Author 小羊
 * @Date 1/11/2024下午 2:49
 * @ClassName OpeningState
 * @Description 电停止状态类
 */
public class StoppingState extends LiftState{
    @Override
    public void open() {
        //状态修改
        super.context.setState(Context.OPENING_STATE);
        //动作委托为CloseState来执行，也就是委托给了ClosingState子类执行这个动作
        super.context.getState().open();
    }

    @Override
    public void close() {//虽然可以关门，但这个动作不归我执行
        //状态修改
        super.context.setState(Context.CLOSING_STATE);
        //动作委托为CloseState来执行，也就是委托给了ClosingState子类执行这个动作
        super.context.getState().close();
    }

    @Override
    public void run() {
        //状态修改
        super.context.setState(Context.RUNNING_STATE);
        //动作委托为CloseState来执行，也就是委托给了ClosingState子类执行这个动作
        super.context.getState().run();
    }

    @Override
    public void stop() {
        System.out.println("电梯停止了...");
    }
}
